home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / SourceCode / MiniExamples / AppKit / CellScrollView / FooCell.m < prev    next >
Text File  |  1993-06-22  |  1KB  |  73 lines

  1. /*
  2.  * You may freely copy, distribute, and reuse the code in this example.
  3.  * NeXT disclaims any warranty of any kind, expressed or  implied, as to its
  4.  * fitness for any particular use.
  5.  */
  6.  
  7.  
  8. #import "FooCell.h"
  9. #import "FooObject.h"
  10. #import <dpsclient/psops.h>
  11. #import <objc/hashtable.h>
  12. #import <stdlib.h>
  13. #import <stdio.h>
  14.  
  15. #define FIELD1_LMARGIN 4.0
  16. #define FIELD2_LMARGIN 54.0
  17.  
  18. @implementation FooCell
  19.  
  20. - init
  21. {
  22.   [super init];
  23.   [self setType:NX_TEXTCELL];
  24.   return self;
  25. }
  26.  
  27. - fooObject
  28. {
  29.   return fooObject;
  30. }
  31.  
  32. - setFooObject:anObject
  33. {
  34.   fooObject = anObject;
  35.   return self;
  36. }
  37.  
  38. - setFont:fontObj
  39. {
  40.   [super setFont:fontObj];
  41.   /*
  42.    * save this info so we don't have to look it up every time we draw
  43.    * Note:  support for a TextCell is a font object
  44.    */
  45.   NXTextFontInfo(support, &ascender, &descender, &lineHeight);
  46.   return self;
  47. }    
  48.  
  49. - drawInside:(const NXRect *)cellFrame inView:controlView
  50. {
  51.   char        buf[100];
  52.   NXCoord    baseX, baseY;
  53.  
  54.   baseX = NX_X(cellFrame);
  55.   baseY = NX_Y(cellFrame) + lineHeight - descender;
  56.      
  57.   /* erase the cell */
  58.   PSsetgray((cFlags1.state || cFlags1.highlighted) ? NX_WHITE : NX_LTGRAY);
  59.   NXRectFill(cellFrame);
  60.  
  61.   PSsetgray(NX_BLACK);
  62.   /* draw the start, duration, and mark name in black */
  63.   PSmoveto(baseX + FIELD1_LMARGIN, baseY);
  64.   sprintf(buf,"%d",[fooObject intValue]);
  65.   PSshow(buf);
  66.   PSmoveto(baseX + FIELD2_LMARGIN, baseY);
  67.   PSshow("xyzzy");
  68.  
  69.   return self;
  70. }
  71.  
  72. @end
  73.